package com.twq.collection.framework

import scala.collection.mutable.ListBuffer

/**
 * Created by tangweiqun on 2017/12/10.
 */
object Category {
  def main(args: Array[String]): Unit = {
    //1、Scala集合库中含有可变集合和不可变集合两种集合

    //可变集合：集合中的元素是可以改变的，可以往集合中增加、修改或者删除元素
    val buffer = new ListBuffer[Int]()
    buffer += 1 //可变集合buffer被改变了

    //不变集合：永远不改变，也支持集合元素的增加、修改或者删除，
    // 但是做了这些操作后，会生成一个新的集合，旧的集合不变
    //无论什么时候这个集合一旦创建都不会被改变
    var list: List[Int] = List(1)
    2 :: list //list集合并没有改变。而是生成了一个新的List集合

    //2、可变集合在scala.collection.mutable包中。而不变集合在scala.collection.immutable中
    //scala.collection中的集合，大部分是trait，是可变集合和不变集合的通用接口

    //3、scala中默认都是取不变集合，比如
    List(2) //返回的是不变集合
    Set(2) //返回的是不变集合
    Iterable(2) //返回的是不变集合
  }
}
